package rpg.core
{
	import rpg.interfaces.IDestroy;

	/**
	 * 组件的基类,游戏中的任何对象,都是由多个组件组成的
	 * 此组件没有更新队列
	 * @author hyy
	 *
	 */
	public class GameComponent implements IDestroy
	{
		/**
		 * 组件的拥有者
		 */
		public var owner : GameBase;
		/**
		 * 类型
		 */
		public var type : *;
		/**
		 * 索引
		 */
		public var index : int;

		public function GameComponent(type : *)
		{
			this.type = type;
		}

		/**
		 * 添加
		 *
		 */
		public function notifyAdded() : void
		{
		}

		/**
		 * 移除
		 * @param owner
		 *
		 */
		public function notifyRemoved(owner : GameBase) : void
		{
		}

		/**
		 * 重置
		 *
		 */
		public function notifyReset() : void
		{
		}

		/**
		 * 销毁
		 *
		 */
		public function destroy() : void
		{
			if(owner)
				owner.removeComponent(this);
			owner = null;
			type = null;
		}

	}
}